1. Field of the Invention
The present Invention relates to an apparatus and method for displaying images on a display screen. Specifically, the present invention relates to an apparatus for generating and manipulating images on a display screen.
2. Prior Art
Computer controlled display devices have become very useful in the computer industry for displaying information to the user. The information displayed to the user can take many forms. For example, it may be useful to display information in terms of alphanumeric characters or in terms of graphic images. In either of these two forms or a variety of other forms, the user seeks to maximize the quantity and quality of information displayed on the display screen, as well as maximizing the speed at which the information is displayed. The quantity and quality of information conveyed to the computer user is increased by use of graphical representations or images on the display screen. Human computer users tend to absorb and manipulate information more quickly when it's presented in a graphical form, rather than an alphanumeric form. The increased use of visual images thus creates a better environment for conveying information to the user. On the other hand, not all information lends itself to display in a graphical form. The optimal computer system needs to be able to manipulate both alphanumeric-type information and graphical information with relative ease.
It has also been determined in the computer industry that the use of color tends to increase the amount of information presented to the computer user. Use of color in an alphanumeric information format can be used to highlight portions of the information displayed on the display screen. For example, a computer system may be devised whereby portions of the screen are displayed in green, indicating the user may alter the information in those areas. Other areas may be displayed in another color, i.e. yellow or red, indicating areas where the user is not allowed to modify the contents of the data. Similarly, the use of color in a graphical image format also facilitates the effective display of information to the user. Just as color photographs convey a better representation of information than black and white photographs, color imagery on the display screen conveys more information to the user than black and white imagery. Thus, the use of multiple display formats and the use of color with those formats provides an effective display capability for conveying large amounts of information to the user.
Unfortunately, the ability to display information in multiple formats and multiple colors comes at the expense of processing time and memory usage. In conventional computer display systems screen images are stored in a large block of memory allocated for the display screen. In this display screen memory, each memory bit (a memory element able to hold a value of one or zero) is mapped to a corresponding picture element (pixel) on the display system. Thus, images and/or text visible on the CRT (cathode ray tube) screen is represented as either a one (black dot) or a zero (white dot) in the block of display screen memory. Ibis type of image representation is known as a bitmap because each bit is mapped one for one to a pixel on the display screen. Although the use of a bitmap is the simplest form of image rendering on a raster type computer display system, the bitmap method has some major drawbacks. For example, on a display screen containing an average size, two-dimension array of pixels (1,000 pixels.times.1,000 pixels) a million bits of memory (125,000 bytes of memory where each byte is 8 bits) would have to be reserved just for the display screen imagery.
The large memory area necessary for display rendering becomes even greater when the bitmap scheme is used for displaying images in multiple shades of gray or multiple colors. In the traditional black and white display system using a bitmap scheme, each bit is either on or off (white or black). In more sophisticated non-color display systems, each pixel can be displayed as a shade of gray. In these systems, instead of each pixel being represented as a single bit, each pixel must be represented as a collection of bits. The number of bits per pixel depends upon the desired number of shades of gray. For example, in a simple system where two bits were allocated per pixel each pixel could be displayed in one of four gray shade values. One of those values might be used to represent white, another might represent black, and the other two possible values may be used to represent two different shades of gray. As the number of shades of gray per pixel increases the clarity of the images displayed on the display screen increases. However, in a computer display system using a bitmap scheme to display shades of gray the memory allocation necessary to hold the image displayed on the display screen rises dramatically. In the above example of a display system using a 1,000.times.1,000 pixel display screen array, the memory allocation required for the display screen memory is multiplied by the number of bits used to represent each pixel. Thus, a system providing 8 bits per pixel (thereby providing 256 possible shades of gray per pixel) a 1 million byte memory area would have to be allocated strictly for the display screen.
Rendering color images on a raster type computer display screen can be accomplished in a manner similar to computer systems providing variations in shades of gray. In color systems, each pixel can be represented by more than one bit in memory; but, instead of the multiple bit value representing a shade of gray, the value represents a different color. Typically, an effective rendering of color images requires the use of more bits per pixel than is necessary in a system using multiple shades of gray. It is not uncommon to use at least 8 bits per pixel to render a color image. More desirable is the ability to render an image using 32 bits per pixel. Unfortunately, the implementation of a 32 bit per pixel color display system using a bitmap scheme is less efficient both in terms of the memory consumed and the processing required in order to manipulate a memory area of the size required for the color image. Again, for the above example of a computer display system having a two-dimensional pixel array of 1,000 pixels.times.1,000 pixels implementing a 32 bit per pixel color scheme would require a memory area of at least 4 million bytes of storage space. Moreover, more processor execution time would be required to process the much larger display memory area. Clearly, a better method is desired in order to render high resolution, multiple color computer display images.
One method for a more efficient rendering of computer display images than is provided by the bitmap scheme is disclosed in the patent titled "Method and Apparatus for Image Compression and Manipulation", (U.S. Pat. No. 4,622,545, inventor William D. Atkinson, filed Sep. 30, 1982. In Atkinson, an apparatus and method is disclosed which provides an improved graphics processing capability. The Atkinson method improves the art over the bitmap scheme by disclosing a method for defining displayed images in terms of inversion points. An inversion point is a point at which the state of all points having coordinates to the right and below the inversion point are inverted (e.g. binary zeroes are converted to binary ones and vice versa). Multiple inversion points can be defined to create any arbitrary area (region) on the display screen. Unlike the bitmap scheme described above, any given region in the Atkinson, scheme can be defined in terms of its inversion points. In Atkinson, all points comprising the region need not be stored in memory. Thus, the Atkinson scheme represents both a savings in memory storage requirements as well as processor execution time.
The Atkinson method provides additional enhancements to the traditional bitmap method of display image generation. Frequently, during the course of using a computer display system, the information presented on the display screen is modified or updated in some form. Often only a portion of the display screen needs to be updated, while other portions of the display screen remain static. Using the bitmap method, it is often difficult to isolate the areas of the screen that change. Typically, an entire source bitmap (new image being used for update) must be processed and the entire screen bitmap must be regenerated at considerable expense in terms of processor execution time.
Atkinson provides a method for operating on regions (or portions thereof) within computer memory and for displaying a resulting region on the display screen. Since portions of memory associated with the display screen can be specified using inversion points to define regions, individual regions can be targeted for update while other regions are left unmodified. The Atkinson method of using lists of inversion points to define regions provides a means for representing the contents of each raster scan line on the display screen. A raster scan line is a horizontal row of pixels on the display screen from the left edge of the screen to the right edge of the screen. In display systems where one bit in memory represents one pixel on the display screen, one raster scan line may be represented in memory by a collection of bits in a scan line buffer, which represents the entire raster scan line of pixels. Thus, regions in the Atkinson scheme are horizontally sliced into a scan line buffer corresponding to a single raster scan line. A particular region is updated by transferring the scan lines associated with the region (source bitmap) to a destination bitmap after applying a mask to each scan line. Using masks, selected portions of the source bitmap are transferred to the destination bitmap.
While the Atkinson method does provide an improved scheme over the traditional bitmap method, the inversion point and masking method in Atkinson can be further improved. The Atkinson scheme works well for display systems where one pixel is represented by a single bit in memory. In these systems, only a single one bit per pixel scan line mask is required per scan line. However, as described earlier, more powerful display systems employ multiple bits per pixel. For color display systems, at least 8 bits per pixel are required, yet 32 bits per pixel or more may be used. In a 32 bit per pixel display system using the Atkinson method, each scan line would require a distinct 32 bit per pixel scan line mask. As the size and number of regions increases, the memory requirements and processing power required to manipulate the regions would become greater than may be available in smaller computer systems.
As discussed below, the present invention provides a method and an apparatus for describing and manipulating areas in the frame buffer of raster display systems. Specific display areas can be manipulated without affecting other areas of the display screen. The present invention facilitates the use of multiple bits per pixel while reducing the processing time required to process the images displayed on the screen. Additionally, the present invention allows the use of prior methods, such as the traditional bitmap scheme or the improved Atkinson masking scheme in order to maintain compatibility with prior systems.